#!/bin/bash

# 1. 设置桥接网络
echo "设置桥接网络..."

# 假设 eth0 和 eth1 为要桥接的网卡
sudo brctl addbr br0         # 创建 br0 桥接接口
sudo brctl addif br0 eth0    # 将 eth0 添加到桥接
sudo brctl addif br0 eth1    # 将 eth1 添加到桥接

# 启动桥接接口
sudo ip link set dev br0 up
sudo ip link set dev eth0 up
sudo ip link set dev eth1 up

# 2. 设置静态 IP 地址
echo "设置 br0 的静态 IP 地址为 192.168.1.10..."

sudo ip addr add 192.168.1.10/24 dev br0

# 3. 启用 IP 转发
echo "启用 IP 转发..."

sudo sysctl -w net.ipv4.ip_forward=1

# 4. 永久启用 IP 转发（配置文件）
echo "确保 IP 转发在重启后依然开启..."
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl --system

# 5. 禁用桥接过滤规则（防止 iptables 影响桥接）
echo "禁用桥接数据包通过 iptables 过滤..."

sudo sysctl -w net.bridge.bridge-nf-call-iptables=0
sudo sysctl -w net.bridge.bridge-nf-call-ip6tables=0
sudo sysctl -w net.bridge.bridge-nf-call-arptables=0

# 6. 永久禁用桥接数据包过滤
echo "确保桥接数据包过滤设置在重启后生效..."
echo "net.bridge.bridge-nf-call-iptables = 0" | sudo tee -a /etc/sysctl.d/99-bridge.conf
echo "net.bridge.bridge-nf-call-ip6tables = 0" | sudo tee -a /etc/sysctl.d/99-bridge.conf
echo "net.bridge.bridge-nf-call-arptables = 0" | sudo tee -a /etc/sysctl.d/99-bridge.conf
sudo sysctl --system

# 7. 设置桥接 br0 获取 IP 地址（如果需要 DHCP）
# sudo dhclient br0   # 如果你希望使用 DHCP 获取 IP，注释掉上一行并取消这行的注释

echo "桥接配置完成，静态 IP 地址为 192.168.1.10"


-----------永久配置
防火墙 & 转发规则（永久）
编辑 /etc/sysctl.conf 添加：
    net.ipv4.ip_forward=1
    net.bridge.bridge-nf-call-iptables=0
    net.bridge.bridge-nf-call-ip6tables=0
    net.bridge.bridge-nf-call-arptables=0
 vim /etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual

auto eth1
iface eth1 inet manual

auto br0
iface br0 inet static
    address 192.168.1.10
    netmask 255.255.255.0
    gateway 192.168.1.1
    #dns-nameservers 8.8.8.8 114.114.114.114
    bridge_ports eth0 eth1
    bridge_stp off
    bridge_fd 0
    bridge_maxwait 0


然后开机脚本加一个 sudo ifdown br0 && sudo ifup br0


